PCRFs are network nodes that perform policy and charging functions for the network. The PCRF function is invoked when another node establishes a policy and charging control session with the PCRF. For example, a Packet Data Network Gateway (PGW) or other node may establish a session with a PCRF to either obtain policy and charging instructions for sessions involving a given end user or to authorize and set up policy and charging rules associated with a service. A Diameter routing agent (DRA) assigns sessions to PCRFs and routes messages associated with a session to the PCRF to which the corresponding session has been assigned. Once a session is assigned to a PCRF, all traffic associated with that session is routed to the same PCRF until the session is terminated.
Network operators typically deploy multiple PCRFs in a network and load share the assignment of new sessions among the PCRFs. New sessions can be assigned to PCRFs utilizing a load balancing algorithm, such as a weighted round robin based algorithm. When assigning new sessions to PCRFs in a pool of PCRFs, it is desirable to weight the assignment based on the relative utilizations of the PCRFs. One possible metric for weighting the assignment of sessions to PCRFs is session utilization of the PCRFs. Session utilization refers to the number of sessions assigned to a PCRF relative to the maximum rated session capacity of a PCRF. For example, if there are four identically provisioned PCRFs in a network and the PCRFs are started at the same time, using session utilization as the sole load balancing metric, each new session would be assigned to one of the PCRFs until each PCRF reaches its maximum session capacity. Continuing with the example, assuming each of the PCRFs has the same maximum session capacity of 100 sessions, using a session utilization based weighted round robin load balancing, if PCRF #1 and #2 are each at 50% of their maximum session processing capacities and PCRFs #3 and #4 are each at 25% of their maximum session processing capacities, new sessions would be preferentially assigned to PCRFs #3 and #4 until the session utilizations of the PCRFs equalize. Once equalized, each PCRF may be selected in order to the PCRFs until maximum session capacities are reached. As sessions terminate, the session utilizations of the PCRFs are updated and the session assignments are weighted according to the relative session utilizations.
While using session utilization is a good metric for long term PCRF load balancing, such a metric does not take into account spikes in PCRF processor utilization by a given session and changes in relative PCRF processing capacity caused by tasks other than processing new sessions. For example, if one PCRF is running a background task, the processing capacity of that PCRF may be reduced compared to other PCRFs even though that PCRF has the same or even a lower number of sessions than the other PCRFs. Because session utilization does not consider the processing capacity of a PCRF and how it is affected by tasks other than new sessions, a PCRF with non-session based processing tasks that are operational may be over assigned a new session load.
In another example, if a given session assigned to a PCRF consumes a large amount of PCRF processing bandwidth relative to what is expected by the PCRF load balancing algorithm, the PCRF managing the session may become overloaded even though it is handling fewer sessions than other PCRFs. Again, using session utilization as the sole session assignment metric, the PCRF with the overactive session will be assigned the same and possibly even more new sessions than other less loaded PCRFs.
Accordingly, there exists a need for methods, systems, and computer readable media for short and long term PCRF load balancing